﻿using System;
using K9Nano.Domain;

namespace K9Nano.Caching.EntityCaching
{
    public interface IEntityCache<TEntity, in TKey, out TEntityCacheItem>
        where TEntity : class, IEntity<TKey> where TKey : IEquatable<TKey>
        where TEntityCacheItem : class
    {
        TEntityCacheItem Get(TKey key);
    }

    public interface IEntityCache<TEntity, out TEntityCacheItem> : IEntityCache<TEntity, long, TEntityCacheItem>
        where TEntity : class, IEntity<long>
        where TEntityCacheItem : class
    {

    }
}